Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, flash drives, digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
A typical flash memory device is a type of memory in which the array of memory cells is typically organized into memory blocks that can be erased and reprogrammed on a block-by-block basis instead of one byte at a time. A threshold voltage of each of the memory cells determines a data value stored in each memory cell.
FIGS. 1A and 1B illustrate possible program states of typical non-volatile memory cells. FIG. 1A illustrates the possible program states of a single level cell (SLC) memory device. FIG. 1B illustrates the possible program states of a multiple level cell (MLC) memory device.
Each of the distributions in FIGS. 1A and 1B represent a threshold voltage (V) range with the number of memory cells at each threshold voltage within that particular range. Each distribution represents a particular programmable state. For example, FIG. 1A shows that the negative voltage distribution 101 represents a logical “1” state (e.g., erased state) and the positive voltage distribution 102 represents a logical “0” state (e.g., programmed state). Similarly, FIG. 1B shows that the negative voltage distribution 103 represents a logical “11” state (e.g., erased state) and the three positive voltage distributions 104-106 represent logical “10”, “00”, and “01” states (e.g., programmed states), respectively.
Due, at least in part, to the relatively low threshold voltages used in non-volatile memory devices, programming a memory device can be susceptible to noise. For example, referring to FIG. 1A, if −A is a voltage representing an erased state and +A is a voltage representing the programmed state, A might be in a range of 1V to 3V. Thus, noise that occurs during either programming or reading the voltages might cause the data state of the memory cell to be incorrectly programmed or incorrectly read.
For the reasons stated above and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for reducing the effects of noise in a memory device.